# -*- Mode: Python -*-
# vim: filetype=python

{ 'pragma': { 'doc-required': true } }

# Entries in these lists are allowed to violate the QAPI rules (for
# historical reasons); think twice before you add to them!
{ 'pragma': {
    # Command names containing '_'
    'command-name-exceptions': [
        'add_client',
        'block_resize',
        'block_set_io_throttle',
        'client_migrate_info',
        'device_add',
        'device_del',
        'expire_password',
        'migrate_cancel',
        'netdev_add',
        'netdev_del',
        'qmp_capabilities',
        'set_link',
        'set_password',
        'system_powerdown',
        'system_reset',
        'system_wakeup' ],
    # Commands allowed to return a non-dictionary
    'command-returns-exceptions': [
        'human-monitor-command',
        'qom-get',
        'query-tpm-models',
        'query-tpm-types',
        'ringbuf-read' ],
    # Types, commands, and events with undocumented members / arguments:
    'documentation-exceptions': [
        'AbortWrapper',
        'AudiodevDriver',
        'BlkdebugEvent',
        'BlockDirtyBitmapAddWrapper',
        'BlockDirtyBitmapMergeWrapper',
        'BlockDirtyBitmapWrapper',
        'BlockdevBackupWrapper',
        'BlockdevDriver',
        'BlockdevQcow2EncryptionFormat',
        'BlockdevSnapshotInternalWrapper',
        'BlockdevSnapshotSyncWrapper',
        'BlockdevSnapshotWrapper',
        'BlockdevVmdkAdapterType',
        'DisplayProtocol',
        'DriveBackupWrapper',
        'DummyBlockCoreForceArrays',
        'DummyForceArrays',
        'DummyVirtioForceArrays',
        'HotKeyMod',
        'ImageInfoSpecificKind',
        'InputAxis',
        'InputButton',
        'IscsiHeaderDigest',
        'IscsiTransport',
        'KeyValueKind',
        'MemoryDeviceInfoKind',
        'NetClientDriver',
        'ObjectType',
        'QKeyCode',
        'RbdAuthMode',
        'RbdImageEncryptionFormat',
        'S390CpuEntitlement',
        'S390CpuPolarization',
        'S390CpuState',
        'String',
        'StringWrapper',
        'SysEmuTarget',
        'ThrottleGroupProperties',
        'VncPrimaryAuth',
        'VncVencryptSubAuth',
        'X86CPURegister32',
        'XDbgBlockGraph',
        'YankInstanceType',
        'blockdev-reopen' ],
    # Externally visible types whose member names may use uppercase
    'member-name-exceptions': [     # visible in:
        'ACPISlotType',             # query-acpi-ospm-status
        'AcpiTableOptions',         # -acpitable
        'BlkdebugEvent',            # blockdev-add, -blockdev
        'BlkdebugSetStateOptions',  # blockdev-add, -blockdev
        'BlockDeviceInfo',          # query-block
        'BlockDeviceStats',         # query-blockstats
        'BlockDeviceTimedStats',    # query-blockstats
        'BlockIOThrottle',          # block_set_io_throttle
        'BlockInfo',                # query-block
        'BlockdevAioOptions',       # blockdev-add, -blockdev
        'BlockdevDriver',           # blockdev-add, query-blockstats, ...
        'BlockdevVmdkAdapterType',  # blockdev-create (to match VMDK spec)
        'BlockdevVmdkSubformat',    # blockdev-create (to match VMDK spec)
        'ColoCompareProperties',    # object_add, -object
        'FilterMirrorProperties',   # object_add, -object
        'FilterRedirectorProperties', # object_add, -object
        'FilterRewriterProperties', # object_add, -object
        'InputLinuxProperties',     # object_add, -object
        'NetdevTapOptions',         # netdev_add, query-netdev, -netdev
        'ObjectType',               # object-add, -object
        'PCIELinkSpeed',            # internal only
        'PciBusInfo',               # query-pci
        'PciDeviceInfo',            # query-pci
        'PciMemoryRegion',          # query-pci
        'QKeyCode',                 # send-key, input-sent-event
        'QapiErrorClass',           # QMP error replies
        'SshHostKeyCheckMode',      # blockdev-add, -blockdev
        'SysEmuTarget',             # query-cpu-fast, query-target
        'UuidInfo',                 # query-uuid
        'VncClientInfo',            # query-vnc, query-vnc-servers, ...
        'X86CPURegister32'          # qom-get of x86 CPU properties
                                    # feature-words, filtered-features
    ] } }
